-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved TH generation #2513
base: main
Are you sure you want to change the base?
Improved TH generation #2513
Conversation
The documentation is not yet as good as it could be; Please have a look at the tests that exemplify the intended use cases until the documentation improves. |
9a3bd92
to
45c7d88
Compare
fdba865
to
4d3ffe0
Compare
4d3ffe0
to
d3a9d13
Compare
d3a9d13
to
dfa4bf5
Compare
dfa4bf5
to
ddb940e
Compare
Looks like Hydra builds are getting stuck again? Another PR also currently fails its Hydra build but succeeds in other tests. |
All tests pass but Hydra build fails. The same thing is happening in another PR: #2611 I'm not sure what needs to be done; perhaps Hydra is caching a stale failed build? |
5c02e66
to
bc0732d
Compare
This PR adds four new data constructors to
Dhall.TH.HaskellType
:SingleConstructorWith
andMultipleConstructorsWith
are similar to their counterparts without the "With" suffix. They take an addionalGenerateOptions
value that is used instead of the global one. They are suitable if you have some weird Dhall types which do not translate to Haskell easily and you don't want to apply the modifiers to all other generated types.Predefined
: Use an existing Haskell type for a Dhall type. Suitable if you want to useData.Sequence.Seq SomeType
instead of[SomeType]
or if you want to translate Dhall maps to Haskell maps.Scoped
: Limit the scope of the lookup of other Haskell types used in the translation process. Together withPredefined
this allows you to use e.g.Data.Sequence.Seq
for some particular types while all the others use the usual Haskell lists. It also allows you to generate two distinct Haskell types that use the same Dhall type as input.